package org.example.js;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * @author: scout.du
 * @date: 2023/12/25 17:44
 **/
public class CourseFormat {

    public static void main(String[] args) {

        //nodejs
        //String str = "P1###001_NodeJS视频简介###04:27(&&&)P2###002_NodeJS入门_为什么要学习NodeJS###03:01(&&&)P3###003_NodeJS入门_NodeJS是什么###01:41(&&&)P4###004_NodeJS入门_NodeJS的作用###05:19(&&&)P5###005_NodeJS入门_NodeJS的安装###06:19(&&&)P6###006_NodeJS入门_认识命令行工具###02:51(&&&)P7###007_NodeJS入门_命令的结构###03:07(&&&)P8###008_NodeJS入门_CMD常用命令###03:10(&&&)P9###009_NodeJS入门_NodeJS的初体验###03:58(&&&)P10###010_NodeJS入门_NodeJS编码注意事项###04:55(&&&)P11###011_Buffer_介绍与创建###07:40(&&&)P12###012_Buffer_操作与注意点###06:50(&&&)P13###013_计算机基础_计算机基本组成###03:48(&&&)P14###014_计算机基础_程序运行的基本流程###05:17(&&&)P15###015_计算机基础_进程与线程###04:21(&&&)P16###016_fs模块_写入文件###07:13(&&&)P17###017_fs模块_同步与异步###06:23(&&&)P18###018_fs模块_文件追加写入###06:08(&&&)P19###019_fs模块_文件流式写入###04:55(&&&)P20###020_fs模块_文件写入应用场景###04:29(&&&)P21###021_fs模块_文件读取###04:34(&&&)P22###022-文件读取应用场景###03:44(&&&)P23###023_fs模块_文件流式读取###06:08(&&&)P24###024_fs模块练习_文件复制###09:27(&&&)P25###025_fs模块_文件重命名和移动###03:52(&&&)P26###026_fs模块_文件删除###03:08(&&&)P27###027_fs模块_文件夹操作###09:01(&&&)P28###028_fs模块_查看资源状态###03:44(&&&)P29###029_fs模块_路径补充说明###04:17(&&&)P30###030_fs模块_相对路径的Bug与解决###07:24(&&&)P31###031_fs练习_批量重命名###06:43(&&&)P32###032_path模块###06:45(&&&)P33###033_HTTP协议_初识HTTP协议###03:01(&&&)P34###034_HTTP协议_窥探HTTP报文###07:26(&&&)P35###035_HTTP协议_请求报文结构###01:38(&&&)P36###036_HTTP协议_请求行###06:40(&&&)P37###037_HTTP协议_请求头###02:49(&&&)P38###038_HTTP协议_请求体###03:52(&&&)P39###039_HTTP协议_响应报文结构与响应行###03:19(&&&)P40###040_HTTP协议_响应头与响应体###04:21(&&&)P41###041_网络基础概念_IP的介绍###05:09(&&&)P42###042_网络基础概念_IP的分类###06:53(&&&)P43###043_网络基础概念_端口###03:47(&&&)P44###044_http模块_创建HTTP服务端###09:26(&&&)P45###045_http模块_HTTP服务的注意事项###12:00(&&&)P46###046_http模块_浏览器查看HTTP报文###08:22(&&&)P47###047_http模块_获取请求行和请求头###09:39(&&&)P48###048_http模块_获取请求体###05:34(&&&)P49###049_http模块_获取请求路径与查询字符串###08:49(&&&)P50###050_http模块_获取请求路径与查询字符串(新)###07:07(&&&)P51###051_http模块_HTTP请求练习###10:34(&&&)P52###052_http模块_设置HTTP响应报文###09:39(&&&)P53###053_http模块_HTTP响应练习###09:23(&&&)P54###054_http模块练习_响应文件内容###05:03(&&&)P55###055_http模块_网页资源加载基本过程###07:00(&&&)P56###056_http模块练习_实现网页引入外部资源###09:48(&&&)P57###057_http模块_静态资源与动态资源###02:46(&&&)P58###058_http模块_搭建静态资源服务###08:31(&&&)P59###059_http模块_静态资源目录与网站根目录###05:31(&&&)P60###060_http模块_网页URL之绝对路径###07:11(&&&)P61###061_http模块_网页URL之相对路径###06:39(&&&)P62###062_http模块_页面URL的使用场景###05:29(&&&)P63###063_http模块_设置mime类型###07:12(&&&)P64###064_http模块_解决乱码问题###05:40(&&&)P65###065_http模块_完善错误处理###07:27(&&&)P66###066_http模块_GET和POST应用场景与区别###03:48(&&&)P67###067_模块化_模块化介绍###06:42(&&&)P68###068_模块化_模块化初体验###02:27(&&&)P69###069_模块化_模块暴露数据###07:21(&&&)P70###070_模块化_导入文件模块###06:23(&&&)P71###071_模块化_导入文件夹的情况###04:26(&&&)P72###072_模块化_require导入模块的基本流程###08:39(&&&)P73###073_模块化_CommonJS模块化规范###01:17(&&&)P74###074_包管理工具_包管理工具介绍###03:23(&&&)P75###075_包管理工具_npm介绍与安装###01:34(&&&)P76###076_包管理工具_npm初始化包###08:01(&&&)P77###077_包管理工具_npm搜索包###03:51(&&&)P78###078_包管理工具_npm下载安装包###04:55(&&&)P79###079_包管理工具_require导入npm模块的基本流程###06:40(&&&)P80###080_包管理工具_开发依赖与生产依赖###06:33(&&&)P81###081_包管理工具_npm全局安装###05:41(&&&)P82###082_包管理工具_修改windows执行策略###03:46(&&&)P83###083_包管理工具_环境变量Path###06:03(&&&)P84###084_包管理工具_npm安装包的所有依赖###04:56(&&&)P85###085_包管理工具_npm安装指定版本包与删除包###02:54(&&&)P86###086_包管理工具_npm配置命令别名###05:19(&&&)P87###087_包管理工具_cnpm介绍###03:53(&&&)P88###088_包管理工具_npm配置淘宝镜像###04:15(&&&)P89###089_包管理工具_yarn的介绍与操作###04:50(&&&)P90###090_包管理工具_npm与yarn的选择###02:23(&&&)P91###091_包管理工具_npm发布一个包###06:17(&&&)P92###092_包管理工具_npm包的更新与删除###03:24(&&&)P93###093_包管理工具_包管理工具扩展介绍###02:08(&&&)P94###094_包管理工具_nvm的介绍与使用###04:30(&&&)P95###095_express框架_express介绍###02:22(&&&)P96###096_express框架_express的初体验###05:01(&&&)P97###097_express框架_路由的介绍###02:24(&&&)P98###098_express框架_路由的使用###07:35(&&&)P99###099_express框架_获取请求报文参数###05:33(&&&)P100###100_express框架_获取路由参数###05:35(&&&)P101###101_express框架_路由参数练习###08:01(&&&)P102###102_express框架_一般响应设置###03:52(&&&)P103###103_express框架_其他响应设置###07:30(&&&)P104###104_express框架_中间件介绍###04:27(&&&)P105###105_express框架_全局中间实践###08:01(&&&)P106###106_express框架_路由中间件实践###06:30(&&&)P107###107_express框架_静态资源中间件###05:24(&&&)P108###108_express框架_静态资源中间件注意事项###03:57(&&&)P109###109_express框架_静态资源中间件练习###05:09(&&&)P110###110_express框架_获取请求体数据###10:36(&&&)P111###111_express框架_防盗链介绍###03:22(&&&)P112###112_express框架_防盗链实践###08:22(&&&)P113###113_express框架_路由模块化###05:19(&&&)P114###114_express框架_模板引擎的介绍###01:30(&&&)P115###115_express框架_ejs初体验###10:40(&&&)P116###116_express框架_ejs列表渲染###06:07(&&&)P117###117_express框架_ejs条件渲染###06:00(&&&)P118###118_express框架_express中使用ejs###04:57(&&&)P119###119_express框架_express-generator工具###07:23(&&&)P120###120_express框架_查看文件上传报文###07:48(&&&)P121###121_express框架_处理文件上传###08:44(&&&)P122###122_案例实践_01_基本结构搭建###04:02(&&&)P123###123_案例实践_02_响应静态网页###06:37(&&&)P124###124_案例实践_03_获取表单数据###04:47(&&&)P125###125_案例实践_04_lowdb的介绍与演示###07:09(&&&)P126###126_案例实践_05_保存账单信息###04:32(&&&)P127###127_案例实践_06_完善成功提醒###03:13(&&&)P128###128_案例实践_07_账单列表###05:46(&&&)P129###129_案例实践_08_删除账单###04:55(&&&)P130###130_Mongodb_Mongodb介绍###04:07(&&&)P131###131_Mongodb_核心概念###03:38(&&&)P132###132_Mongodb_下载安装与启动###07:38(&&&)P133###133_Mongodb_数据库与集合命令###05:24(&&&)P134###134_Mongodb_文档命令###05:27(&&&)P135###135_Mongodb_数据库操作应用场景###03:31(&&&)P136###136_mongoose_mongoose介绍###03:26(&&&)P137###137_mongoose_连接数据库###06:32(&&&)P138###138_mongoose_连接数据库补充说明###03:21(&&&)P139###139_mongoose_插入文档###07:33(&&&)P140###140_mongoose_字段类型###07:04(&&&)P141###141_mongoose_字段值验证###07:13(&&&)P142###142_mongoose_删除文档###05:25(&&&)P143###143_mongoose_更新文档###03:32(&&&)P144###144_mongoose_读取文档###03:34(&&&)P145###145_mongoose_条件控制###08:47(&&&)P146###146_mongoose_个性化读取###07:45(&&&)P147###147_mongoose_代码模块化-1###06:23(&&&)P148###148_mongoose_代码模块化-2###09:48(&&&)P149###149_Mongodb图形化工具-Robo3T###06:39(&&&)P150###150_Mongodb图形化工具-Navicat###05:34(&&&)P151###151_案例优化_01_结合数据库###02:58(&&&)P152###152_案例优化_02_准备模型文件###03:13(&&&)P153###153_案例优化_03_插入数据库###07:39(&&&)P154###154_案例优化_04_读取数据库###06:00(&&&)P155###155_案例优化_05_删除文档###05:16(&&&)P156###156_API接口_接口介绍###06:09(&&&)P157###157_API接口_RESTful API###04:17(&&&)P158###158_API接口_json-server工具###04:52(&&&)P159###159_接口测试工具-apipost基本使用###08:28(&&&)P160###160_接口测试工具-apipost公共参数与文档功能###05:12(&&&)P161###161_接口测试工具-postman基本使用###03:44(&&&)P162###162_案例功能完善_01_结合API接口###06:07(&&&)P163###163_案例功能完善_02_获取账单接口###04:58(&&&)P164###164_案例功能完善_03_创建账单接口###05:41(&&&)P165###165_案例功能完善_04_删除账单接口###02:05(&&&)P166###166_案例功能完善_05_获取单条账单接口###02:46(&&&)P167###167_案例功能完善_06_更新账单接口###05:02(&&&)P168###168_会话控制_会话控制介绍###04:52(&&&)P169###169_会话控制_cookie的介绍###06:11(&&&)P170###170_会话控制_浏览器操作cookie###05:22(&&&)P171###171_会话控制_express框架中设置cookie###07:50(&&&)P172###172_会话控制_express框架中删除cookie###03:05(&&&)P173###173_会话控制_express框架中获取cookie###02:45(&&&)P174###174_会话控制_session的介绍###03:31(&&&)P175###175_会话控制_session举例说明###04:39(&&&)P176###176_会话控制_express-session安装与配置###07:50(&&&)P177###177_会话控制_express中session操作###08:40(&&&)P178###178_会话控制_session与cookie的区别###02:39(&&&)P179###179_案例功能完善_01_响应注册页面###05:31(&&&)P180###180_案例功能完善_02_注册用户###07:51(&&&)P181###181_案例功能完善_03_用户登录###06:11(&&&)P182###182_案例功能完善_04_写入session###03:56(&&&)P183###183_案例功能完善_05_用户登录检测###05:41(&&&)P184###184_案例功能完善_06_退出登录###03:32(&&&)P185###185_案例功能完善_07_CSRF跨站请求伪造###04:16(&&&)P186###186_案例功能完善_08_首页和404页面###05:54(&&&)P187###187_会话控制_token的介绍###05:59(&&&)P188###188_会话控制_jwt介绍与使用###05:37(&&&)P189###189_案例功能完善_01_登录响应token###07:58(&&&)P190###190_案例功能完善_02_token校验###08:14(&&&)P191###191_案例功能完善_03_token功能完善###04:44(&&&)P192###192_案例功能完善_04_本地域名配置###07:42(&&&)P193###193_项目上线_01_代码上传仓库###03:56(&&&)P194###194_项目上线_02_购买云服务器###04:20(&&&)P195###195_项目上线_03_连接服务器与软件安装###04:26(&&&)P196###196_项目上线_04_代码克隆服务启动###05:53(&&&)P197###197_项目上线_05_域名购买与解析###05:38(&&&)P198###198_项目上线_06_配置HTTPS证书###08:52(&&&)P199###199_前后端开发扩展介绍###09:08(&&&)P200###200_完结篇###03:10";

        //react
        String str = "P1###课程先导###01:39(&&&)P2###重要问题说明###03:11(&&&)P3###React框架介绍###03:36(&&&)P4###基础环境搭建###06:18(&&&)P5###目录熟悉和简化###05:32(&&&)P6###React18问题说明###01:23(&&&)P7###jsx-基础介绍###04:55(&&&)P8###jsx-表达式使用###04:16(&&&)P9###jsx-列表渲染###05:16(&&&)P10###jsx-条件渲染###05:38(&&&)P11###jsx-模板精简原则###04:23(&&&)P12###jsx-样式控制###05:15(&&&)P13###jsx-动态类名控制###02:24(&&&)P14###jsx-注意事项###03:36(&&&)P15###开发工具和格式化代码###04:54(&&&)P16###jsx-合案例练习###18:07(&&&)P17###组件-概念理解###01:57(&&&)P18###组件-函数组件的创建和渲染###03:48(&&&)P19###组件-类组件的创建和渲染###03:53(&&&)P20###组件-事件绑定###05:34(&&&)P21###组件-事件对象e说明###03:20(&&&)P22###组件-事件绑定传递额外参数###03:39(&&&)P23###组件-状态的定义使用###08:31(&&&)P24###组件-状态定义修改注意事项###03:05(&&&)P25###组件-状态修改counter案例###05:40(&&&)P26###组件-this的指向问题说明###08:26(&&&)P27###组件-this指向问题再说明###07:54(&&&)P28###知识点梳理总结###10:40(&&&)P29###组件-状态不可变说明###13:23(&&&)P30###表单-受控组件###11:59(&&&)P31###表单-非受控组件###10:02(&&&)P32###组件-阶段小练习-tab切换实现###08:59(&&&)P33###组件-阶段小练习-发表评论实现###09:42(&&&)P34###组件-阶段小练习-uuid函数使用###04:04(&&&)P35###组件-阶段小练习-删除评论实现###04:06(&&&)P36###组件-阶段小练习-切换喜欢###07:21(&&&)P37###组件通信-通信的意义###04:03(&&&)P38###组件通信-父传子-基础实现###11:53(&&&)P39###组件通信-父传子-props说明###14:01(&&&)P40###组件通信-父传子-props的解构###04:05(&&&)P41###组件通信-子传父-基础实现###06:26(&&&)P42###组件通信-子传父-子传父的本质###03:27(&&&)P43###组件通信-兄弟通信实现###11:04(&&&)P44###组件通信-Context实现跨组件传递数据###12:54(&&&)P45###组件基础阶段小练习###11:54(&&&)P46###组件进阶-特殊的chidren属性###08:43(&&&)P47###组件进阶-props类型校验基础使用###09:59(&&&)P48###组件进阶-props类型校验整体说明###05:15(&&&)P49###组件进阶-函数组件props默认值###06:35(&&&)P50###组件进阶-类组件props默认值###05:28(&&&)P51###组件生命周期-整体概览###07:05(&&&)P52###组件生命周期-挂载阶段###07:49(&&&)P53###组件生命周期-更新时和卸载时###12:48(&&&)P54###todoMvc-功能说明-组件库测试###10:13(&&&)P55###todoMvc-使用antd搭建页面模板###11:54(&&&)P56###todoMvc-获取列表渲染实现###04:55(&&&)P57###todoMvc-删除功能实现###10:34(&&&)P58###todoMvc-搜索功能实现###05:20(&&&)P59###阶段性重点内容总结###11:38(&&&)P60###hook-产生背景和优势###03:39(&&&)P61###hook-useState-基础使用###03:57(&&&)P62###hook-useState-数据的读取和修改###06:28(&&&)P63###hook-useState-组件的更新过程###06:26(&&&)P64###hook-useState-使用规则说明###08:46(&&&)P65###hook-useEffect-理解副作用和基础使用###06:22(&&&)P66###hook-useEffect-通过依赖项控制执行时机###12:34(&&&)P67###hook阶段小练习-useWindowScroll###07:05(&&&)P68###hook阶段小练习-useLocalStorage###08:54(&&&)P69###hook-useState-函数作为参数###09:15(&&&)P70###hook-useEffect-清除副作用###06:43(&&&)P71###hook-useEffect-发送网络请求###11:40(&&&)P72###hook-useRef使用###09:09(&&&)P73###hook-useContext使用###08:53(&&&)P74###hook-补充知识###06:32(&&&)P75###hook重点内容回顾###11:03(&&&)P76###react-router-最小化demo实现###12:23(&&&)P77###react-router-路由模式组件说明###02:29(&&&)P78###react-router-路由跳转和匹配组件说明###04:27(&&&)P79###react-router-编程式导航-实现跳转###08:50(&&&)P80###react-router-跳转传参-searchParams###09:23(&&&)P81###react-router-跳转传参-params###05:20(&&&)P82###react-router-嵌套路由实现###11:30(&&&)P83###react-router-默认二级路由设置###02:38(&&&)P84###react-router-404页配置###08:12(&&&)P85###mobx-介绍###04:57(&&&)P86###mobx-环境搭建###05:54(&&&)P87###mobx-第一个store###11:45(&&&)P88###mobx-computed计算属性###06:47(&&&)P89###mobx-模块化-拆分子模块创建根模块###10:48(&&&)P90###mobx-模块化-实例化root并封装统一useStore方法###15:07(&&&)P91###mobx-基础总结###06:02(&&&)P92###mobx-todomvc-渲染列表###12:08(&&&)P93###mobx-todomvc-单选实现###16:33(&&&)P94###mobx-todomvc-全选实现###07:37(&&&)P95###mobx-todomvc-删除实现###06:03(&&&)P96###mobx-todomvc-回车新增功能实现###13:20(&&&)P97###mobx-todomvc-统计计数功能实现###02:30(&&&)P98###mobx-mobx和react的职责划分###06:48(&&&)P99###pc项目-项目介绍###02:37(&&&)P100###pc项目-初始化项目提交到gitee###06:06(&&&)P101###pc项目-配置sass环境###06:38(&&&)P102###pc项目-配置一级基础路由###07:20(&&&)P103###pc项目-antd安装测试使用###07:56(&&&)P104###pc项目-craco插件配置###10:33(&&&)P105###pc项目-配置jsconfig.json文件###02:21(&&&)P106###pc项目-dev-tools调试工具安装###03:21(&&&)P107###pc项目-登录-搭建静态结构###05:40(&&&)P108###pc项目-登录-搭建表单Form结构###09:12(&&&)P109###pc项目-登录-表单校验实现###13:07(&&&)P110###pc项目-登录-获取表单数据###05:20(&&&)P111###pc项目-登录axios统一封装处理###06:45(&&&)P112###pc项目-登录-mobx业务代码编写###11:30(&&&)P113###pc项目-登录-组件收集数据调用mobx###06:09(&&&)P114###pc项目-登录-后续业务处理###05:52(&&&)P115###pc项目-token持久化###10:13(&&&)P116###pc项目-请求拦截器注入token###03:01(&&&)P117###pc项目-路由鉴权实现###14:33(&&&)P118###pc项目-layout模块-结构搭建###09:30(&&&)P119###pc项目-layout模块-二级路由配置###05:16(&&&)P120###pc项目-layout模块-路由跳转配置###02:48(&&&)P121###pc项目-layout模块-菜单反向高亮###06:27(&&&)P122###pc目-layout模块-获取用户数据###11:56(&&&)P123###pc项目-layout模块-退出登录实现###07:06(&&&)P124###pc项目-layout模块-401token实现###12:49(&&&)P125###pc项目-layout模块-echart基础使用###08:09(&&&)P126###pc项目-layout模块-echart组件封装###08:09(&&&)P127###pc项目-article-筛选区域结构搭建###07:50(&&&)P128###pc项目-article-table列表区域结构搭建###06:26(&&&)P129###pc项目-article-频道列表渲染###07:24(&&&)P130###pc项目-article-获取文章列表###15:09(&&&)P131###pc项目-article-渲染文章列表###06:06(&&&)P132###pc项目-article-增加筛选条件###16:17(&&&)P133###pc项目-article-分页器功能###09:18(&&&)P134###拓展-useState和useEffect的拆分粒度###03:53(&&&)P135###pc项目-article-删除功能###04:15(&&&)P136###pc项目-article-跳转编辑###03:18(&&&)P137###pc项目-publish-发布文章结构搭建###02:42(&&&)P138###pc项目-publish-富文本编辑器实现###09:15(&&&)P139###pc项目-publish-重构频道获取###11:30(&&&)P140###pc项目-publish-基础上传实现###10:29(&&&)P141###pc项目-publish-onChange方法说明###04:16(&&&)P142###pc项目-publish-图片状态切换视图变化###06:12(&&&)P143###pc项目-publish-最大上传图片数量控制###06:37(&&&)P144###pc项目-publish-收集表单数据提交接口###12:02(&&&)P145###pc项目-publish-暂存图片列表###17:12(&&&)P146###pc项目-publish-编辑-文案适配###05:27(&&&)P147###pc项目-publish-编辑-回显基础数据###11:56(&&&)P148###pc项目-publish-编辑-回显upload图片显示###10:11(&&&)P149###pc项目-publish-编辑-回填暂存列表数据###04:33(&&&)P150###pc项目-publish-编辑-尝试更新找到bug###06:47(&&&)P151###pc项目-publish-编辑-更改setFileList逻辑实现数据统一###10:08(&&&)P152###项目打包-打包和预览###01:55(&&&)P153###项目打包-包大小体积分析###05:08(&&&)P154###项目打包-cdn配置###20:16(&&&)P155###项目打包-路由懒加载###07:58";
        String[] split = str.split("\\(&&&\\)");
        List<String> list = new ArrayList<>();
        for (String course : split) {
            String[] courses = course.split("###");
            //System.out.println(courses[2]);
            list.add(courses[2]);
        }

//        System.out.println(list.get(0));
//        System.out.println(list.get(1));
//        String plus = plus(list.get(0), list.get(1));
//        System.out.println(plus);

        String total = "00:00";
        for (int i = 0; i < list.size(); i++) {
            total = plus(total,list.get(i));
            System.out.println(total);
        }
    }



    public static String plus(String s1,String s2){

        String[] split1 = s1.split(":");
        String[] split2 = s2.split(":");

        String second1 = split1[1];
        String second2 = split2[1];
        String minute1 = split1[0];
        String minute2 = split2[0];
        String hour1 = "0";
        String hour2 = "0";

        if (split1.length == 3){
            second1 = split1[2];
            minute1 = split1[1];
            hour1 = split1[0];
        }

        if (split2.length == 3){

            second2 = split2[2];
            minute2 = split2[1];
            hour2 = split2[0];
        }


        Integer intSecond1 = Integer.valueOf(second1);
        Integer intSecond2 = Integer.valueOf(second2);
        Integer secondTotal = intSecond1+intSecond2;
        //System.out.println(second);

        int second = secondTotal % 60;
        int minPlus = secondTotal / 60;

        String secondStr = second<10?("0"+second):String.valueOf(second);
//        System.out.println("secondStr:"+secondStr);


        Integer intMinute1 = Integer.valueOf(minute1);
        Integer intMinute2 = Integer.valueOf(minute2);
        Integer minuteTotal = intMinute1 + intMinute2 + minPlus;
        /*if (minuteTotal>60){
            System.out.println("----");
        }*/
        int minute = minuteTotal % 60;
        int hourPlus = minuteTotal / 60;
        /*if (hourPlus>0){
            System.out.println("--");
        }*/

        String minuteStr = minute<10?("0"+minute):String.valueOf(minute);
//        System.out.println("minuteStr:"+minuteStr);


        Integer hour = Integer.valueOf(hour1) + Integer.valueOf(hour2) + hourPlus;
        String hourStr = String.valueOf(hour);
//        System.out.println("hourStr:"+hourStr);

        String result = "0".equals(hourStr)?(minuteStr+":"+secondStr):(hourStr+":"+minuteStr+":"+secondStr);


        return result;
    }
}
